背景
近年来大数据BigData、人工智能AI、物联网Iot等行业发展迅猛,很多人都想要从事大数据技术开发工作,但是,请问要怎么做,路线是什么?从哪里开始学?学哪些?这是一个大问题。对于我自己来说,最近也在学一些大数据开发相关的技术,所以之前整理了一份《大数据技术学习路线》,希望对你有所帮助。
近年来大数据BigData、人工智能AI、物联网Iot等行业发展迅猛,很多人都想要从事大数据技术开发工作,但是,请问要怎么做,路线是什么?从哪里开始学?学哪些?这是一个大问题。对于我自己来说,最近也在学一些大数据开发相关的技术,所以之前整理了一份《大数据技术学习路线》,希望对你有所帮助。
聊两个问题,它们看似和推荐系统没有必然关系,但实际上,在你构建自己的推荐系统的时候,不可避免地会遇到这两个问题。
在推荐系统中,有一个刚需就是去重,那么说在哪些地方有去重的需求呢?
主要是在两个地方:一个是内容源去重,另一个是不重复给用户推荐。
聊两个问题,它们看似和推荐系统没有必然关系,但实际上,在你构建自己的推荐系统的时候,不可避免地会遇到这两个问题。
在推荐系统中,有一个刚需就是去重,那么说在哪些地方有去重的需求呢?
主要是在两个地方:一个是内容源去重,另一个是不重复给用户推荐。
爬取百度图片并把图片存到本地:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import os
num = 0
numPicture = 0
file = ''
List = []
def Find(url):
global List
print('正在检测图片总数,请稍等.....')
t = 0
i = 1
s = 0
while t < 1000:
Url = url + str(t)
try:
Result = requests.get(Url, timeout=7)
except BaseException:
t = t + 60
continue
else:
result = Result.text
pic_url = re.findall('"objURL":"(.*?)",', result, re.S) # 先利用正则表达式找到图片url
s += len(pic_url)
if len(pic_url) == 0:
break
else:
List.append(pic_url)
t = t + 60
return s
def recommend(url):
Re = []
try:
html = requests.get(url)
except error.HTTPError as e:
return
else:
html.encoding = 'utf-8'
bsObj = BeautifulSoup(html.text, 'html.parser')
div = bsObj.find('div', id='topRS')
if div is not None:
listA = div.findAll('a')
for i in listA:
if i is not None:
Re.append(i.get_text())
return Re
def dowmloadPicture(html, keyword):
global num
# t =0
pic_url = re.findall('"objURL":"(.*?)",', html, re.S) # 先利用正则表达式找到图片url
print('找到关键词:' + keyword + '的图片,即将开始下载图片...')
for each in pic_url:
print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))
try:
if each is not None:
pic = requests.get(each, timeout=7)
else:
continue
except BaseException:
print('错误,当前图片无法下载')
continue
else:
string = file + r'\\' + keyword + '_' + str(num) + '.jpg'
fp = open(string, 'wb')
fp.write(pic.content)
fp.close()
num += 1
if num >= numPicture:
return
if __name__ == '__main__': # 主函数入口
word = input("请输入搜索关键词(可以是人名,地名等): ")
# 比如百度图片上搜索:苹果
# add = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%e8%8b%b9%e6%9e%9c&pn=120'
url = 'http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&pn='
tot = Find(url)
Recommend = recommend(url) # 记录相关推荐
print('经过检测{}类图片共有{}张'.format(word, tot))
numPicture = int(input('请输入想要下载的图片数量: '))
file = input('请建立一个存储图片的文件夹,输入文件夹名称即可:')
y = os.path.exists(file)
if y == 1:
print('该文件已存在,请重新输入')
file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可')
os.mkdir(file)
else:
os.mkdir(file)
t = 0
tmp = url
while t < numPicture:
try:
url = tmp + str(t)
result = requests.get(url, timeout=10)
print(url)
except error.HTTPError as e:
print('网络错误,请调整网络后重试')
t = t + 60
else:
dowmloadPicture(result.text, word)
t = t + 60
print('当前搜索结束,感谢使用')
print('猜你喜欢')
for re in Recommend:
print(re, end=' ')
执行结果如下,比如搜索杨树:
存到本地的效果如下图:
共勉,(๑•̀ㅂ•́)و✧加油
这是一个绕口令,要一口气说完。开始做绕口令练习的时候,中间可以换一换气,练到气息有了控制能力的时候,逐渐把换气次数减少,最后争取一口气说完,甚至多说几个枣儿。必须进行共鸣训练。 以下介绍几种简单易行的共训练方法。 方法/步骤 1, 放松喉头,用“哼哼”音唱歌。 2,学鸭叫声。挺软腭,口腔张开成一圆筒,边发gaga音,边仔细体会,共鸣运用得好的gaga音好听,共鸣运用得不好的gaga音枯燥、刺耳。 3, 学牛叫声。类似打电话的“嗯”(什么?)和“嗯”(明白了)。 4, 牙关大开合,同时发出“啊”音。 5, 模拟汽笛长鸣声。(di)既可平行发音,也可由大到小或由小到大地变化发音。 6, 做扩胸运动,同时尽量发高亢或尽量低沉的声音。 7, “气泡音”练习。闭嘴,用轻匀的气流冲击声带,使之发出细小的抖动声。 8,音阶层练习。选一句话,在本人音域范围内,先用低调说,一级一级地升高,然后又一级一级地下降,在一句高一句低,高低交替,一句话又高到低,再由低到高。 9,夸张四声练习。选择韵母因素较多的词语或成语,运用共鸣技巧做夸张四声的训练。如:清——正——廉——洁——,英——勇——顽——强——。 10, 大声呼唤练习。假设某人在离自己100米处,大声呼唤:张——师——傅——,快——回——来——!喂——,那——里——危——险——,快——离——开——! 字的对比练习。训练要求是,对比平翘舌声母,再分别组词作朗诵练习。 > 平——翘 滋——之 字——只咋——扎 总——中 > 嘴——追 增——正 尊——准 藏——张 > 词的对比练习。训练要求是:对比平翘舌声母,再分别用每个词说句话。 > 平——翘 自主——支柱栽花——摘花 木材——木柴 > 推辞——推迟 私人——诗人 司机——实际 > 组词练习。训练要求是:用平翘舌音组词,辨音记词,再用每个词说句话。 > Z——zh 在职 杂志 栽种 增长 自重 宗旨 > Zh——z 渣滓 张嘴 种族 长子 沼泽 振作 > C——ch 财产 草场 猜出 采茶 彩绸 餐车 > Ch——c 车次场次 蠢才 纯粹 差错 陈词 > Sh——s 三十 丧生 扫射 私塾 四十 四声 > S——sh 哨所 山色 深思 神速 上诉 深邃 绕口令-1 八百标兵(b、p) 八百标兵奔北坡,炮兵并排北边跑,炮兵怕把标兵碰,标兵怕碰炮兵炮。 炮兵和步兵(b、p、m)炮兵攻打八面坡,炮兵排排炮弹齐发射。步兵逼近八面坡,歼敌八千八百八十多。 绕口令-2 一平盆面(b、p) 一平盆面,烙一平盆饼,饼碰盆,盆碰饼。 巴老爷芭蕉树(b、p)巴老爷有八十八棵芭蕉树来了八十八个把式要在巴老爷八十八棵芭蕉树下住。巴老爷拔了八十八棵芭蕉树,不让八十八个把式在八十八棵芭蕉树下住,八十八个把式烧了八十八棵芭蕉树,巴老爷在八十八棵树边哭。 绕口令-8 哥挎瓜筐过宽沟(g、k) 哥挎瓜筐过宽沟,赶快过沟看怪狗,光看怪狗瓜筐扣,瓜滚筐空哥怪狗。 哥哥捉鸽(g、k、h) 哥哥过河捉个鸽,回家割鸽来请客,客人吃鸽称鸽肉,哥哥请客乐呵呵。 老爷堂上一面鼓(g、k、h)老爷堂上一面鼓,鼓上一只皮老虎,皮老虎抓破了鼓,就拿块破布往上补,只见过破布补破裤,哪见过破布补破鼓。 知自在自然自在;
悟如来想如来,
非如来如是如来。
长扁担,短扁担长扁担,短扁担,
长扁担比短扁担长半扁担;
短扁担比长扁担短半扁担。
长扁担绑在短板凳上,
长板凳不能绑在比短扁担长半扁担的长扁担上;
短板凳也不能绑在比长扁担短半扁担的短扁担上。
民兵排选标兵
民兵排选标兵,
六班的标兵、七班的标兵、八班的标兵,
评比台前比选先进,
比比谁更先进,
选拔八名全排标兵上北京。
盆和棚天上一个盆,
地下一个棚,
盆碰棚,棚碰盆,
棚倒了,盆碎了,
是棚赔盆,
还是盆赔棚?
他们要学理发。
理化不是理发,
理发不是理化。
学会理化不会理发,
学会理发也不懂理化。
量窗量床又量墙量窗量床又量墙,
跳上床量窗,
靠住墙量床,
墙比张床长,
床又比窗长,
窗长不过床,
床又长不过墙,
所以墙比床比窗长,
读不顺就去撞墙。
钉上挂条绳,
滑落绳下瓶,
打碎瓶下灯,
砸破灯下盆。
瓶打灯,灯打盆,
盆骂灯,灯骂瓶,
瓶骂绳,绳骂钉,
钉怪绳,绳怪瓶,
瓶怪灯,灯怪盆,
叮叮当当当当叮,
乒乒乓乓乓乓乒。
爹打弟,弟滚地爹打弟,弟滚地,
嫂嫂烧苕哄地弟;
姐呼鸡,鸡藏箕,
叔叔竖黍惊箕鸡。
奋发商店卖混纺奋发商店卖混纺,
有红混纺,黄混纺,粉红混纺,花混纺,
纷繁的混纺让大娘着了慌。
仿佛进了混纺的大世界,
眼也花,手也忙。
吩咐女儿快快挑混纺。
理化和理发我们要学理化,
他们要学理发。
理化不是理发,
理发不是理化。
学会理化不会理发,
学会理发也不懂理化。
从北边来了一个阿巴阿巴,背上背着一个伸缩喇叭。
南边提着比目鱼的啦的高高大大的喇嘛,要拿比目鱼的啦换北边背伸缩喇叭的阿巴阿巴的伸缩喇叭。
阿巴阿巴不愿拿伸缩喇叭换高高大大的喇嘛的比目鱼的啦。
高高大大的喇嘛非要换背伸缩喇叭阿巴阿巴的伸缩喇叭。
高高大大的喇嘛抡起比目鱼的啦抽了背伸缩喇叭阿巴阿巴一比目鱼的啦,阿巴阿巴摘下伸缩喇叭打了提比目鱼的啦的高高大大的喇嘛一伸缩喇叭。也不知是提着比目鱼的啦的高高大大的喇嘛抽了背伸缩喇叭的阿巴阿巴一比目鱼的啦,还是背伸缩喇叭的阿巴阿巴打了提比目鱼的啦的高高大大的喇嘛一伸缩喇叭。
高高大大的喇叭回家炖比目鱼的啦。
阿巴阿巴滴滴答答吹伸缩喇叭。
小鸡鸡不尿尿各有各的道天有天道地有地道
小鸡鸡不尿尿各有各的道
听说你会剑道忍道人道学过柔道抬拳道还会空手道和李小龙学过截拳道
小服呀说你爹不走正道你妈就走歪道你还不进孝道整天横行霸道还胡说八道脚踏黑白两道出门警车开道你快去你吗了个一群二白3拳4轴无炎六色七上八下五花八门三长两短千变万化五万十色万紫千红里的大比里组织一下语言深空进化一下你的长相吗的~!~气死我了小服呀你在跟我装我就一个大拳头给你打到西伯力亚叫你抱着北极熊叫爸
二哥有小锅,
大哥要换二哥的小锅,
二哥不换大哥的大锅。
班干部管班干部班干部管班干部(重复五遍)
树顶一只猴树顶一只猴,
树脚一只狗;
猴狗跋落来撞着狗,
狗吠猴哮,猴走狗也走,
不知是猴怕狗,还是狗怕猴。
2,八百标兵奔北坡,
炮兵并排北边跑,
炮兵怕把标兵碰,
标兵怕碰炮兵炮。
3,断头台倒吊短单刀,
歹徒登台偷单刀,
断头台塌盗跌倒,
对对单刀叮当掉。
八百标兵奔北坡,
炮兵并排北边跑。
炮兵怕把标兵碰,
标兵怕碰炮兵炮。
寡妇马华莎,
光汉贾家嘉。
马华莎脸上麻,
贾家嘉独眼瞎,
两人登记成了家。
贾家嘉不嫌马华莎麻,
马华莎不嫌贾家嘉瞎.
伯伯簸谷子,
簸去谷秕子。
婆婆簸谷子,
簸去秕谷子。
伯伯和婆婆,
簸谷作种子。
阿拉屋里有只白脚白鼻头白尾巴花白猫,
隔壁大伯伯啦也有只白脚白鼻头白尾巴花白猫。
阿拉个只白脚白鼻头白尾巴花白猫,
去咬杀了隔壁大伯伯啦个只白脚白鼻头白尾巴花白猫。
阿拉个只白脚白鼻头白尾巴花白猫,
去赔给了大伯伯啦个只白脚白鼻头白尾巴花白猫,
阿拉个只白脚白鼻头白尾巴花白猫白里格白养了—遭。
八百标兵奔北坡,
炮兵并排北边跑,
炮兵怕把标兵碰,
标兵怕碰炮兵炮.
哥哥弟弟坡前坐,
坡上卧着一只鹅,
坡下流着一条河,
哥哥说:宽宽的河,
弟弟说:白白的鹅.
鹅要过河,
河要渡鹅.
不知是鹅过河,
还是河渡鹅.
嘴说腿,腿说嘴,
嘴说腿爱跑腿,
腿说嘴爱卖嘴.
光动嘴不动腿,
光动腿不动嘴,
不如不长腿和嘴.
八百标兵奔北坡,
炮兵并排北边跑。
炮兵怕把标兵碰,
标兵怕碰炮兵炮。
寡妇马华莎,
光汉贾家嘉。
马华莎脸上麻,
贾家嘉独眼瞎,
两人登记成了家。
贾家嘉不嫌马华莎麻,
马华莎不嫌贾家嘉瞎.
伯伯簸谷子,
簸去谷秕子。
婆婆簸谷子,
簸去秕谷子。
伯伯和婆婆,
簸谷作种子。
哥哥挎筐过宽沟,
快过宽沟看怪狗,
光看怪狗瓜筐扣,
瓜滚筐扣哥怪狗.
八百标兵奔北坡,
炮兵并排北边跑,
炮兵怕把标兵碰,
标兵怕碰炮兵炮.
哥哥弟弟坡前坐,
坡上卧着一只鹅,
坡下流着一条河,
哥哥说:宽宽的河,
弟弟说:白白的鹅.
鹅要过河,
河要渡鹅.
不知是鹅过河,
还是河渡鹅.
嘴说腿,腿说嘴,
嘴说腿爱跑腿,
腿说嘴爱卖嘴.
光动嘴不动腿,
光动腿不动嘴,
不如不长腿和嘴.
哥哥弟弟坡前坐,
坡上卧着一只鹅,
坡下流着一条河,
哥哥说:宽宽的河,
弟弟说:白白的鹅.
鹅要过河,
河要渡鹅.
不知是鹅过河,
还是河渡鹅.
嘴说腿,腿说嘴,
嘴说腿爱跑腿,
腿说嘴爱卖嘴.
光动嘴不动腿,
光动腿不动嘴,
不如不长腿和嘴.
夹着火车上皮包.
回头一看人咬狗.
拿起狗来打石头,
又怕石头咬着手.
断头台倒吊短单刀,
歹徒登台偷单刀,
断头台塌盗跌倒,
对对单刀叮当掉.
有个小孩叫小杜,
上街打醋又买布.
买了布,打了醋,
回头看见鹰抓兔.
放下布,搁下醋,
上前去追鹰和兔,
飞了鹰,跑了兔.
洒了醋,湿了布.
八百标兵奔北坡,
炮兵并排北边跑。
炮兵怕把标兵碰,
标兵怕碰炮兵炮。
寡妇马华莎,
光汉贾家嘉。
马华莎脸上麻,
贾家嘉独眼瞎,
两人登记成了家。
贾家嘉不嫌马华莎麻,
马华莎不嫌贾家嘉瞎.
伯伯簸谷子,
簸去谷秕子。
婆婆簸谷子,
簸去秕谷子。
伯伯和婆婆,
簸谷作种子。
阿拉屋里有只白脚白鼻头白尾巴花白猫,
隔壁大伯伯啦也有只白脚白鼻头白尾巴花白猫。
阿拉个只白脚白鼻头白尾巴花白猫,
去咬杀了隔壁大伯伯啦个只白脚白鼻头白尾巴花白猫。
阿拉个只白脚白鼻头白尾巴花白猫,
去赔给了大伯伯啦个只白脚白鼻头白尾巴花白猫,
阿拉个只白脚白鼻头白尾巴花白猫白里格白养了—遭。
八百标兵奔北坡,
炮兵并排北边跑。
炮兵怕把标兵碰,
标兵怕碰炮兵炮。
哥哥挎筐过宽沟哥哥挎筐过宽沟,
快过宽沟看怪狗。
光看怪狗瓜筐扣,
瓜滚筐扣哥怪狗。
洞庭山上有根藤
洞庭山上有根藤,
藤上系着小铜铃。
风吹藤动铜铃动,
风停藤静铜铃停。
九与酒
九月九,九个酒迷喝醉酒。
九个酒杯九杯酒,九个酒迷喝九口。
喝罢九口酒,又倒九杯酒。
九个酒迷端起酒,“咕咚、咕咚”又九口。
九杯酒,酒九口,喝罢九个酒迷醉了酒。
天上一颗星
天上一颗星,地下一块冰, 屋上一只鹰,墙上一排钉。
抬头不见天上的星,乒乓乒乓踏碎地下的冰,
啊嘘啊嘘赶走了屋上的鹰,唏哩唏哩拔掉了墙上的钉。
九与酒
九月九,九个酒迷喝醉酒。
九个酒杯九杯酒,九个酒迷喝九口。
喝罢九口酒,又倒九杯酒。
九个酒迷端起酒,“咕咚、咕咚”又九口。
九杯酒,酒九口,喝罢九个酒迷醉了酒。
南边来了他大大伯子家的大搭拉尾巴耳朵狗,
北边来了他二大伯子家的二搭拉尾巴耳朵狗.
他大大伯家的大搭拉尾巴耳朵狗,咬了他二大伯家的二搭拉尾巴耳朵狗一口;
他二大伯家的二搭拉尾巴耳朵狗,也咬了他大大伯家的大搭拉尾巴耳朵狗一口.
不知是他大大伯家的大搭拉尾巴耳朵狗,先咬了他二大伯家的二搭拉尾巴耳朵狗;
还是他二大伯家的二搭拉尾巴耳朵狗,先咬了他大大伯家的大搭拉尾巴耳朵狗.
喇嘛与哑巴
打南边来了个哑巴,腰里别了个喇叭;
打北边来了个喇嘛,手里提了个獭犸.
提着獭犸的喇嘛要拿獭犸换别着喇叭的哑巴的喇叭;
别着喇叭的哑巴不愿拿喇叭换提着獭犸的喇嘛的獭犸.
不知是别着喇叭的哑巴打了提着獭犸的喇嘛一喇叭;
还是提着獭犸的喇嘛打了别着喇叭的哑巴一獭犸.
喇嘛回家炖獭犸;
哑巴嘀嘀哒哒吹喇叭
凤凰台上落凤凰。
红凤凰,蓝凤凰,
粉红凤凰黄凤凰。
凤凰落在凤凰台,
凤凰山上凤花香。
凤凰山上放凤凰凤凰山上放凤凰,
凤凰山下凤凰唱。
碰见凤凰数凤凰,
粉红凤同黄凤凰。
红凤凰绿凤凰黄凤凰红凤凰,
绿凤凰,
粉红凤凰黄凤凰。
凤凰飞,飞凤凰,
凤凰山里出凤凰。
小妞妞赶集小妞妞,去赶集,
集上有人卖鸭梨;卖的那梨真叫甜,
集上有人在卖镰;卖的那镰真叫快,
集上有人在卖菜;卖的那菜真叫鲜,
集上有人在卖烤烟;卖的那烟真叫好,
集上有人在卖红枣;卖的那枣真叫红,
集上有人卖大绳;卖的那绳真叫长,
集上有人卖香糖;卖的那糖真叫香,
集上有人卖鲜姜;卖的那姜真叫辣,
集上有人卖年画;卖的那画真好看,
集上有人卖大蒜;卖的大蒜个个大,
集上有人卖红蜡;卖的那蜡真叫粗;
集上有人卖小猪;小花猪,
猛一叫,吓了妞妞一大跳。
凤凰台上落凤凰。
红凤凰,蓝凤凰,
粉红凤凰黄凤凰。
凤凰落在凤凰台,
凤凰山上凤花香。
凤凰山上放凤凰凤凰山上放凤凰,
凤凰山下凤凰唱。
碰见凤凰数凤凰,
粉红凤同黄凤凰。
红凤凰绿凤凰黄凤凰红凤凰,
绿凤凰,
粉红凤凰黄凤凰。
凤凰飞,飞凤凰,
凤凰山里出凤凰。
小妞妞赶集小妞妞,去赶集,
集上有人卖鸭梨;卖的那梨真叫甜,
集上有人在卖镰;卖的那镰真叫快,
集上有人在卖菜;卖的那菜真叫鲜,
集上有人在卖烤烟;卖的那烟真叫好,
集上有人在卖红枣;卖的那枣真叫红,
集上有人卖大绳;卖的那绳真叫长,
集上有人卖香糖;卖的那糖真叫香,
集上有人卖鲜姜;卖的那姜真叫辣,
集上有人卖年画;卖的那画真好看,
集上有人卖大蒜;卖的大蒜个个大,
集上有人卖红蜡;卖的那蜡真叫粗;
集上有人卖小猪;小花猪,
猛一叫,吓了妞妞一大跳。
李力丽黎礼立夫妻去赶集李力丽,黎礼立,
夫妻双双去赶集,
李力丽的丈夫黎礼立,
赶集去卖竹蔑席,
黎礼立的妻子李力丽,
赶集去卖肥母鸡.
黎礼立卖了竹蔑席买只电视机,
李力丽卖了肥母鸡买件呢子衣.
红凤凰绿凤凰黄凤凰
红凤凰,
绿凤凰,
粉红凤凰黄凤凰。
凤凰飞,飞凤凰,
凤凰山里出凤凰。小妞妞赶集
小妞妞,去赶集,
集上有人卖鸭梨;卖的那梨真叫甜,
集上有人在卖镰;卖的那镰真叫快,
集上有人在卖菜;卖的那菜真叫鲜,
集上有人在卖烤烟;卖的那烟真叫好,
集上有人在卖红枣;卖的那枣真叫红,
集上有人卖大绳;卖的那绳真叫长,
集上有人卖香糖;卖的那糖真叫香,
集上有人卖鲜姜;卖的那姜真叫辣,
集上有人卖年画;卖的那画真好看,
集上有人卖大蒜;卖的大蒜个个大,
集上有人卖红蜡;卖的那蜡真叫粗;
集上有人卖小猪;小花猪,
猛一叫,吓了妞妞一大跳。李力丽黎礼立夫妻去赶集
李力丽,黎礼立,
夫妻双双去赶集,
李力丽的丈夫黎礼立,
赶集去卖竹蔑席,
黎礼立的妻子李力丽,
赶集去卖肥母鸡.
黎礼立卖了竹蔑席买只电视机,
李力丽卖了肥母鸡买件呢子衣.
小齐、小吉和小余跟着小鞠去赶集
小齐、小吉和小余,
跟着小鞠去赶集,
路上遇见一头小毛驴,
在嘁哩喀喳啃树皮。
小齐和小吉,
小余和小鞠,
一齐跑过去,
小齐和小吉把小毛驴送到村西饲养棚里面去。高个子矮个子穿高跟鞋
高个子穿的半高跟,矮个子穿的高高跟。
高个子不穿高高跟,比矮个子穿高高跟高半高跟,
矮个子穿上高高跟,比高个子穿半高跟还矮半高跟。
绣个金凤凰放金光,
绣个银凤凰放银光,
绣个粉红凤凰放粉红光,
绣个红凤凰放红光,
绣个黄凤凰放黄光,
凤凰姊,绣凤凰,
绣的凤凰会放光。
芳芳贴凤凰春天里,杏花黄,
奶奶给我剪凤凰。
我和妹妹手挽手,
一起来把歌儿唱:
一进门,粉白墙,
刚刚芳芳贴凤凰,
红凤凰,蓝凤凰,
粉红凤凰黄凤凰。
凤凰台上落凤凰。
红凤凰,蓝凤凰,
粉红凤凰黄凤凰。
凤凰落在凤凰台,
凤凰山上凤花香。
凤凰山上放凤凰凤凰山上放凤凰,
凤凰山下凤凰唱。
碰见凤凰数凤凰,
粉红凤同黄凤凰。
红凤凰绿凤凰黄凤凰红凤凰,
绿凤凰,
粉红凤凰黄凤凰。
凤凰飞,飞凤凰,
凤凰山里出凤凰。
四和十十和四十四和四十四十和十四说好四和十得靠舌头和牙齿谁说四十是细席他
的舌头没用力谁说十四是适时他的舌头4.没伸直认真学常练习十四、四十、四十四3.牛和柳
河边一棵柳,柳下一头牛,牛要去顶柳,柳条缠牛头。4.松和钟
丛岭种青松,青松挂铜钟,
风行松动铜铃鸣,风停松静钟声停。5.帆船
帆船翻,翻帆船,竖起桅杆撑开帆。
风吹帆,,帆引船,帆船顺风转海湾。6.打铁
张打铁,李打铁,打把刀,送姐姐。
姐姐留我歇,我不歇,我在张家学打铁。7.实事求是
知道就是知道,不知道就是不知道。不要知道说不知道,也不要不知道说知道。
实事求是一定要做到,这才是不折不扣的真知道。8.牛皮好绷鼓
手里起泡泡,泡里出青草,
青草好饲草,牛皮好绷鼓,
绷来鼓,急鼓鼓,十八夜里敲铜鼓。9.河里有只船
河里有只船船上挂白帆风吹帆张船向前无风帆落停下船10.兜装豆
兜里装豆,豆装满兜,兜破漏豆。倒出豆,补破兜,补好兜,又装豆,装满兜,不漏豆。11.颠倒歌
咬牛奶,喝面包,夹着火车上皮包。东西街,南北走,出门看见人咬狗。拿起狗来打砖头,又怕砖头咬我手。
哥哥挎筐过宽沟,
快过宽沟看怪狗,
光看怪狗瓜筐扣,
瓜滚筐扣哥怪狗.
八百标兵奔北坡,
炮兵并排北边跑,
炮兵怕把标兵碰,
标兵怕碰炮兵炮.
哥哥弟弟坡前坐,
坡上卧着一只鹅,
坡下流着一条河,
哥哥说:宽宽的河,
弟弟说:白白的鹅.
鹅要过河,
河要渡鹅.
不知是鹅过河,
还是河渡鹅.
打枣
出东门,
过大桥,
大桥底下一树枣。
拿着竿子去打枣,
青的多,
红的少:
一个枣、两个枣、三个枣、四个枣、五个枣、六个枣、七个枣、八个枣、九个枣、十个枣;
十个枣、九个枣、八个枣、七个枣、六个枣、五个枣、四个枣、三个枣、两个枣、一个枣。
一个半罐是半罐,两个半罐是一罐;三个半罐是一罐半,四个半罐是两罐;五个半罐是两罐半,
六个半罐是三满罐;七个、八个、九个半罐,请你算算是多少罐。
给山下三小子借了三斗三升酸枣子。过年山下三小子打下酸枣子,
四和十 四和十,十和四,十四和四十, 四十和十四。 说好四和十得靠舌头和牙齿, 谁说四十是细席, 他的舌头没用力;谁说十四是适时, 他的舌头没伸直。认真学,常练习, 十四、四十、四十四。
河里有只船,
船上挂白帆,
风吹帆张船向前,
无风帆落停下船。种南瓜
东门童家门东董家,童、董两家,同种冬瓜,童家知道董家冬瓜大,来到董家学种冬瓜。门东董家懂种冬瓜,来教东门童家种冬瓜。童家、董家都懂得种冬瓜,童、董两家的冬瓜比桶大。酒换油
一葫芦酒九两六,一葫芦油六两九。六两九的油,要换九两六的酒,九两六的酒,不换六两九的油。九个酒迷喝醉酒
九月九,九个酒迷喝醉酒。九个酒杯九杯酒,九个酒迷喝九口。喝罢九口酒,又倒九杯酒。九个酒迷端起酒,咕咚、咕咚又九口。九杯酒,酒九口,喝罢九个酒迷醉了酒。
打枣
出东门,
过大桥,
大桥底下一树枣。
拿着竿子去打枣,
青的多,
红的少:
一个枣、两个枣、三个枣、四个枣、五个枣、六个枣、七个枣、八个枣、九个枣、十个枣;
十个枣、九个枣、八个枣、七个枣、六个枣、五个枣、四个枣、三个枣、两个枣、一个枣。
一个半罐是半罐,两个半罐是一罐;三个半罐是一罐半,四个半罐是两罐;五个半罐是两罐半,
六个半罐是三满罐;七个、八个、九个半罐,请你算算是多少罐。
给山下三小子借了三斗三升酸枣子。过年山下三小子打下酸枣子,
鹅过河 哥哥弟弟坡前坐, 坡上卧着一只鹅, 坡下流着一条河, 哥哥说:宽宽的河, 弟弟说:白白的鹅。 鹅要过河, 河要渡鹅。 不知是鹅过河, 还是河渡鹅。 颠倒歌 咬牛奶,喝面包, 夹着火车上皮包。 东西街,南北走, 出门看见人咬狗。 拿起狗来打砖头, 又怕砖头咬我手。
小凤提着圆灯笼,
小龙提着方灯笼。
小凤的圆灯笼上画着龙,
小龙的方灯笼上画着凤,
小凤要拿圆龙灯笼换小龙的方凤灯笼。
大花碗里扣个大花活蛤蟆。
南边来了他大大伯子家的大搭拉尾巴耳朵狗,
北边来了他二大伯子家的二搭拉尾巴耳朵狗。
他大大伯家的大搭拉尾巴耳朵狗,咬了他二大伯家的二搭拉尾巴耳朵狗一口;
他二大伯家的二搭拉尾巴耳朵狗,也咬了他大大伯家的大搭拉尾巴耳朵狗一口。
不知是他大大伯家的大搭拉尾巴耳朵狗,先咬了他二大伯家的二搭拉尾巴耳朵狗;
还是他二大伯家的二搭拉尾巴耳朵狗,先咬了他大大伯家的大搭拉尾巴耳朵狗。
扁但是扁的,
板凳是板的。
扁担不是板凳,
板凳不是扁担。
别把扁担说成板凳,
别把板凳说成扁担。
一很长扁担,
一根短扁担,
长扁担比短扁担长半扁担,
短扁担比长扁担短半扁担。
路上走着个扛短扁担的,
对面来了个搬短板凳的。
是扛短扁担的打搬短板凳的,
还是搬短板凳的打扛短扁担的?
扁但是扁的,
板凳有板的。
扁担扁,
扁的不都是扁担,
板凳板,
有板的不都是板凳
扁担不是板凳,
板凳不是扁担,
别把扁担说成板凳
别把板凳说成扁担
扁但是扁的,
板凳是板的。
扁担不是板凳,
板凳不是扁担。
别把扁担说成板凳,
别把板凳说成扁担。
一很长扁担,
一根短扁担,
长扁担比短扁担长半扁担,
短扁担比长扁担短半扁担。
路上走着个扛短扁担的,
对面来了个搬短板凳的。
是扛短扁担的打搬短板凳的,
还是搬短板凳的打扛短扁担的?
板凳是板的。
扁担不是板凳,
板凳不是扁担。
别把扁担说成板凳,
别把板凳说成扁担。
扁担和板凳打架路上走着个扛短扁担的,
对面来了个搬短板凳的。
是扛短扁担的打搬短板凳的,
还是搬短板凳的打扛短扁担的?
扁担不是板凳扁担是扁的,
板凳有板的。
扁担扁,
扁的不都是扁担,
板凳板,
有板的不都是板凳。
扁担不是板凳,
板凳不是扁担,
别把扁担说成板凳,
别把板凳说成扁担。
板凳是板的。
扁担不是板凳,
板凳不是扁担。
别把扁担说成板凳,
别把板凳说成扁担。
扁担和板凳打架路上走着个扛短扁担的,
对面来了个搬短板凳的。
是扛短扁担的打搬短板凳的,
还是搬短板凳的打扛短扁担的?
扁担不是板凳扁担是扁的,
板凳有板的。
扁担扁,
扁的不都是扁担,
板凳板,
有板的不都是板凳。
扁担不是板凳,
板凳不是扁担,
别把扁担说成板凳,
别把板凳说成扁担。
八斤鸡和八斤狗
我家有个肥净白净八斤鸡,飞到张家后院里。
张家院有个肥净白净八斤狗,咬了我的肥净白净八斤鸡。
我拿他的肥净白净八斤狗赔了我的肥净白净八斤鸡。
一条裤子七道缝儿
一条裤子七道缝,斜缝竖缝和横缝,缝了斜缝缝竖缝,缝了竖缝缝斜缝
画凤凰
粉红墙上画凤凰 凤凰画在粉红墙 红凤凰、粉凤凰 红粉凤凰花凤凰
三山撑四水,四水绕三山,三山四水春常在,四水三山四时春(《三山撑四水》)。
司机买雌鸡,仔细看雌鸡,四只小雌鸡,叽叽好欢喜,司机笑嘻嘻(《司机买雌鸡》)。
大车拉小车,小车拉小石头,石头掉下来,砸了小脚指头(《大车拉小车》)。
夏日无日日亦热,冬日有日日亦寒,春日日出天渐暖,晒衣晒被晒褥单,秋日天高复云淡,遥看红日迫西山(《说日》)。
四声:石室诗士施史,嗜狮,誓食十狮,氏时时适市,氏视十狮,恃矢势,使是十狮逝世,氏拾是十狮尸,适石室,石室湿,氏使侍拭石室,石室拭,氏始试食十狮尸,食时,始识十狮尸实是十石狮尸,试释是事实(《施氏食狮史》)。
七巷一个漆匠,西巷一个锡匠,七巷漆匠偷了西巷锡匠的锡,西巷锡匠偷了七巷漆匠的漆。(《漆匠和锡匠》)。
哥挎瓜筐过宽沟,赶快过沟看怪狗。光看怪狗瓜筐扣,瓜滚筐空哥怪狗(《哥挎瓜筐过宽沟》)。
一堆粪,一堆灰,灰混粪,粪混灰(《一堆粪》)。
画狮子 有个好孩子,拿张图画纸, 来到石院子,学画石狮子。 一天来画一次石狮子, 十天来画十次石狮子。 次次画石狮子,天天画石狮子, 死狮子画成了活狮子。
羊 和 狼 东边来了一只小山羊, 西边来了一只大灰狼, 一起走到小桥上, 小山羊不让大灰狼, 大灰狼不让小山羊, 小山羊叫大灰狼让小山羊, 大灰狼叫小山羊让大灰狼, 羊不让狼,狼不让羊, 扑通一起掉到河中央。
鸟 和 猫 树上一只鸟, 地上一只猫。 地上的猫想咬树上的鸟, 树上的鸟想啄猫的毛。 黄狗咬我手 清早上街走,走到周家大门口, 门里跳出一只大黄狗, 朝我哇啦哇啦吼。 我拾起石头打黄狗, 黄狗跳上来就咬我的手。 也不知我手里的石头 打没打着周家的大黄狗, 周家的大黄狗咬没咬着我的手?
小 花 猫 小花猫爱画画,先画一朵腊梅花, 又画一个小喇叭,带着腊梅花, 吹着小喇叭,回家去见妈妈, 妈妈见了笑哈哈。
毛毛和猫猫 毛毛有一顶红帽,猫猫有一身灰毛。 毛毛要猫猫的灰毛, 猫猫要毛毛的红帽。 毛毛把红帽交给猫猫, 猫猫给毛毛几根灰毛。
小鱼大雁 小鱼入鱼网鱼网捕鱼鱼难逃, 大雁过雁塔雁塔留雁雁不留。
捉 兔 一位爷爷他姓顾,上街打醋又买布。 买了布,打了醋,回头看见鹰抓兔。 放下布,搁下醋,上前去追鹰和兔, 飞了鹰,跑了兔。打翻醋,醋湿布。
老鼠嗅着油豆香 油一缸,豆一筐, 老鼠嗅着油豆香。 爬上缸,跳进筐, 偷油偷豆两头忙。 又高兴,又慌张, 脚一滑,身一晃, “扑通”一声跌进缸。
蚕和蝉 爬来爬去是蚕, 飞来飞去是蝉。 蚕常在桑叶里藏, 蝉藏在树林里唱。
八公庙里的八个和尚拿八根金箍棒打八个八哥儿,
不许八个八哥儿再到八公庙里的八棵白果树上做八个八歌儿窝。 虎和鼓 墙上挂面鼓,
鼓上画老虎,
老虎抓破鼓,
拿块布来补。
不知是布补鼓,
还是布补虎? 于琳琳爱捏泥 于琳琳爱捏泥,
揉揉泥,团团泥,
揉来揉去不起急。
捏了一只小狐狸,
又捏七只小小鸡。
小狐狸、小小鸡,
全都送给小弟弟。
钉钉棚棚上有钉,
棚钉钉钉钉钉棚。
帆船翻,翻帆船,竖起桅杆撑开帆。风吹帆,,帆引船,帆船顺风转海湾。 黄碗合活鸭
黄碗合活鸭。(念五遍)红鸡和灰鸡红鸡公尾巴灰,灰鸡公尾巴红。
宝宝掰,宝宝抱。
宝宝掰包谷包谷掉,
宝宝抱包谷宝宝笑。 瓜卖花 婆婆卖瓜又卖花,
一过卖来一边夸,
夸瓜大,夸花美,
人们买瓜又买花,
乐得婆婆笑哈哈。 喇嘛提蛤蟆、哑巴别着喇叭 打南边儿来了个喇嘛,
手里提着个蛤蟆,
打北边儿来了个哑巴,
腰里别着喇叭。
手里提蛤蟆的喇嘛,
要拿蛤蟆换哑巴腰里的喇叭;
腰里别喇叭的哑巴,
不拿喇叭换喇嘛手里的蛤蟆。
提蛤蟆的喇嘛,
打了哑巴一蛤蟆;
别喇叭的哑巴,
打了喇嘛一喇叭。
峰下枫。
峰上风吹蜂会飞,峰下枫,
峰下枫挡峰上风。破瓦和骡马 楼上一块破瓦,
楼下一匹骡马,
破瓦落下来打了骡马,
骡马跳起来踩了破瓦。老伯 郭老伯、骆第伯、毕老伯、柏老伯,
郭骆毕柏四老伯,约着城北买菱角,
买菱角阁上剥,菱角壳戳了四老伯了脚。
一个驼子,拉着车子;
一个瞎子,抱着孩子。
跛子的驴子,撞着驼子的车子;
驼子的车子,碰倒瞎子的孩子;
瞎子要打驼子,驼子要打跛子。 刘小牛去打油 刘小牛去打油,
买了油,往回走;
油瓶满,往外流,
多给了半斤油,
急坏了刘小牛。
多的油,不能留,
回到商店大退油;
叔叔摸摸小牛头,
阿姨拉拉小牛手,
齐声夸资刘小牛。 贾家养虾 贾家有女初出嫁,嫁到夏家学养虾,
喂养的对虾个头儿大,卖到市场直加价。
贾家爹爹会养鸭,鸭子虽肥伤庄稼。
邻里吵架不融洽,贾家也学养对虾。
小虾卡住了鸭子牙,大鸭咬住了虾的夹。
夏家公公劝,贾家爹爹压,大鸭不怕吓,
小虾装得嗲,夏家贾家没办法。
小宝宝年纪小。
老爷爷要看报,
小宝宝要吃糕。
老爷爷给宝宝拿糕,
小宝宝给爷爷拿报。
老爷爷看报眯眯笑,
小宝宝吃糕味道好。 红凤凰粉凤凰 红凤凰粉凤凰,
红粉凤凰粉红凤凰。
红凤凰粉凤凰,
红粉凤凰粉红凤凰!
油煎豆腐骨头多,
太湖当中挑野菜,
大山顶上摸田螺,
摸个田螺笆斗大,
摆了摇篮里骗外婆。 吃核桃 我敲桃壳你剥肉,
吃掉桃肉甩掉壳。
桃壳甩得门角落,
门角落头有桃壳。
天上看,满天星
天上看,满天星;
地下看,有个坑;
坑里看,有盘冰。
坑外长着—老松,松上落着一只鹰,
松下坐着一老僧,僧前放着—部经,
经前点着一盏灯,墙上钉着一根钉,
钉上挂着一张弓。说刮风,就刮风,
刮得男女老少难把眼睛睁。
刮散了天上的星,刮平了地的坑,
刮化了坑里的冰,刮倒了坑外的松,
刮飞了松上的鹰,刮走了松下的僧,
刮乱了僧前的经,刮灭了经前的灯,
刮掉了墙上的钉,刮翻了钉上的弓。
买来一桶油,跑来一头牛,
踢翻桶里油,牛角都是油。
天上看,满天星;地下看,有个坑;坑里看,有盘冰。坑外长着—老松,松上落着一只鹰,松下坐着一老僧
,僧前放着—部经,经前点着一盏灯,墙上钉着一根钉,钉上挂着一张弓。说刮风,就刮风,刮得男女老少
难把眼睛睁。刮散了天上的星,刮平了地的坑,刮化了坑里的冰,刮倒了坑外的松,刮飞了松上的鹰,刮走
了松下的僧,刮乱了僧前的经,刮灭了经前的灯,刮掉了墙上的钉,刮翻了钉上的弓。这是一段星散、坑平
、冰化、松倒、鹰飞、僧走、经乱、灯火、钉掉、弓翻的。
望月空满天星
望月空,满天星,光闪闪,亮晶晶,
好象那,小银灯,仔细看,看分明,
大大小小,密密麻麻,闪闪烁烁,数也数不清。
砸缸小光和小刚,抬着水桶上岗。
上山岗,歇歇凉,拿起竹竿玩打仗。
乒乒乒,乓乓乓,打来打去砸了缸。
小光怪小刚,小刚怪小光,小光小刚都怪丿竿和水缸。
隔着窗子撕字纸,一撕横字纸,
再撕竖字 纸,撕了四十四张湿字纸。
小猪扛锄头,吭哧吭哧走。
小鸟唱枝头,小猪扭头瞅,
锄头撞石头,石头砸猪头。
小猪怨锄头,锄头怨猪头。
老唐端蛋汤,踏凳登宝塔,
只因凳太滑,汤洒汤烫塔。
卖蒜的算卦,算卦的买蒜。
算卦的不买卖蒜的蒜,
卖蒜的不算算卦的卦。关于满天星的绕口令
抬头看,满天星,
低头看,一道坑。
坑里看,栽的葱,
葱上看,冻的冰。
屋里看,点着灯,
墙上看,钉的钉。
钉上看,挂的弓,
弓上看,卧的鹰。
寒冷天,刮大风,
刮散了,满天星。
刮平了,地下坑,
刮倒了,坑里葱。
刮消了,葱上冰,
刮灭了,屋里灯。
刮断了,墙上钉,
刮掉了,钉上弓;
刮飞了,弓上鹰。
这才是:星散、坑平葱倒
冰消、灯灭、钉断、弓掉、鹰飞。
得棒呛一场空。毛毛的红帽、猫猫的灰毛
毛毛有一顶红帽,
猫猫有一身灰毛。
毛毛要猫猫的灰毛,
猫猫要毛毛的红帽。
毛毛把红帽交给猫猫,
猫猫抽了几根灰毛送给毛毛。毛毛穿袍袍、苗苗戴帽帽一块追猫猫
毛毛穿袍袍,
苗苗戴帽帽。
毛毛和苗苗,
一块追猫猫。
猫猫喵喵叫,
急得蹦又跳。
猫猫抓破毛毛花袍袍,
猫猫抓破苗苗花帽帽。
苗苗给毛毛补袍袍,
毛毛给苗苗补帽帽。
树上的松鼠--蹿上跳下
树上的松鼠--蹿上跳下演员制服
男演员穿蓝制服,
女演员穿棉制服,
蓝制服是棉制服,
棉制服是蓝制服。
男演员穿蓝棉制服,
女演员穿棉蓝制服。
天上看,满天星
天上看,满天星;
地下看,有个坑;
坑里看,有盘冰。
坑外长着—老松,松上落着一只鹰,
松下坐着一老僧,僧前放着—部经,
经前点着一盏灯,墙上钉着一根钉,
钉上挂着一张弓。说刮风,就刮风,
刮得男女老少难把眼睛睁。
刮散了天上的星,刮平了地的坑,
刮化了坑里的冰,刮倒了坑外的松,
刮飞了松上的鹰,刮走了松下的僧,
刮乱了僧前的经,刮灭了经前的灯,
刮掉了墙上的钉,刮翻了钉上的弓。瘸子和矬子
小山屋
南面来了个瘸子,腰里别着个橛子,
北边来了个矬子,肩上挑着担茄子。
别橛子的瘸子要用橛子换挑茄子的矬子的茄子,
挑茄子的矬子不给别橛子的瘸子茄子。
别橛子的瘸子抽出腰里的橛子打了挑茄子的矬子一橛子,
挑茄子的矬子拿起茄子打了别橛子的瘸子一茄子。
好象那,小银灯,仔细看,看分明,
大大小小,密密麻麻,闪闪烁烁,
数也数不清。
补桶桐木桶,桶有洞,
补洞用桐不用铜。
用铜补洞补不住,
用桐补桶桶无洞。
聋童朦胧彩霓虹,
玲珑小聋童。
聋童采柠檬,
聋童不懵懂。
男演员穿蓝制服, 女演员穿棉制服, 蓝制服是棉制服, 棉制服是蓝制服。 男演员穿蓝棉制服, 女演员穿棉蓝制服。 【天上看,满天星】
天上看,满天星; 地下看,有个坑; 坑里看,有盘冰。 坑外长着—老松,松上落着一只鹰, 松下坐着一老僧,僧前放着—部经, 经前点着一盏灯,墙上钉着一根钉, 钉上挂着一张弓。说刮风,就刮风, 刮得男女老少难把眼睛睁。 刮散了天上的星,刮平了地的坑, 刮化了坑里的冰,刮倒了坑外的松, 刮飞了松上的鹰,刮走了松下的僧, 刮乱了僧前的经,刮灭了经前的灯, 刮掉了墙上的钉,刮翻了钉上的弓。
天上看,满天星; 地下看,有个坑; 坑里看,有盘冰。 坑外长着—老松,松上落着一只鹰, 松下坐着一老僧,僧前放着—部经, 经前点着一盏灯,墙上钉着一根钉, 钉上挂着一张弓。说刮风,就刮风, 刮得男女老少难把眼睛睁。 刮散了天上的星,刮平了地的坑, 刮化了坑里的冰,刮倒了坑外的松, 刮飞了松上的鹰,刮走了松下的僧, 刮乱了僧前的经,刮灭了经前的灯, 刮掉了墙上的钉,刮翻了钉上的弓。 【瘸子和矬子】
小山屋 南面来了个瘸子,腰里别着个橛子, 北边来了个矬子,肩上挑着担茄子。 别橛子的瘸子要用橛子换挑茄子的矬子的茄子, 挑茄子的矬子不给别橛子的瘸子茄子。 别橛子的瘸子抽出腰里的橛子打了挑茄子的矬子一橛子, 挑茄子的矬子拿起茄子打了别橛子的瘸子一茄子。
妈妈骂马妈妈种麻,我去放马,马吃了麻,妈妈骂马。
六叔和六舅好六叔和好六舅,借给六斗六升绿绿豆。打罢秋,接住豆,再还六叔六舅六斗六升绿绿豆。
小秋和小牛 小妞妞,叫小秋,梳着两个小抓鬏,小胖胖,叫小牛,穿着一个小兜兜。小秋帮着小牛记扣扣,小牛帮小秋剥豆豆,小秋、小牛手拉手,一块儿玩,一块儿走。
送 花华华有两朵红花,红红有两朵黄花,华华想要黄花,红红想要红花,华华送给红红一朵红花,红红送给华华一朵黄花。
好 孩 子张家有个小英子,王家有个小柱子。张家的小英子,自己穿衣洗袜子,天天扫地擦桌子,王家的小柱子,捡到一只皮夹子,还给后院大婶子。小英子,小柱子,他们都是好孩子。
任命、人名任命是任命,人名是人名,任命人名不能错,错了人名错任命。
四 老 伯郭老伯、骆老伯,毕老伯、柏老伯,郭骆毕柏四老伯,约着城北买菱角,买得菱角阁上剥,菱角壳戳了四老伯的脚。
分 果 果多多和哥哥,坐下分果果。哥哥让多多,多多让哥哥。都说要小个,外婆乐呵呵。
南南有个篮南南有个篮篮,篮篮装着盘盘,盘盘放着碗碗,碗碗盛着饭饭。南南翻了篮篮,篮篮扣了盘盘,盘盘打了碗碗,碗碗撒了饭饭。
瘸 子北边来了一个瘸子,背着一捆橛子。南边来了一个瘸子,背着一筐茄子。背橛子的瘸子打了背茄子的瘸子一橛子。背茄子的瘸子打了背橛子的瘸子一茄子。
小华和胖娃小华和胖娃,两人种花又种瓜,小华会种花不会种瓜,胖娃会种瓜不会种花,小华教胖娃种花,胖娃教小华种瓜。
白家伯伯北贫坡上白家有个伯伯,家里养着一百八十八只白鹅,门口种着一百八十八棵白果,树上住着一百八十八只八哥。八哥在白果树上吃白果,白鹅气得直叫:我饿!我饿!
白鸽尖尖红嘴壳,白鹅曲项向天歌。
白鸽剪开云朵朵,白鹅拨开浪波波。
鸽乐呵呵,鹅活泼波,白鹅白鸽碧波蓝天真快乐。小鱼大雁
小与入鱼网鱼网捕鱼鱼难逃,大雁过雁塔雁塔留雁雁不留。雾
早晨下大雾,山里看不见路,急坏了小猪、小兔和小鹿。
小兔领小猪,小猪拉小鹿,拉着藤,扶着树,一步一步走山路。
秋风婆婆来帮助,呼——呼——呼—— 一下吹散满天雾。猫吃桃河边有座窑,窑上有个槽,槽里放件袍,袍包个桃。
对岸有只猫,想吃窑上槽里袍包桃,可惜岸上没有桥。
过不了河,上不了窑,够不找槽,咬不住袍,吃不了桃。白庙、白猫、白帽山顶有座白庙,白庙里有只白猫。
白庙外有顶白帽,白猫看见了白帽,
叨着白帽跑进了白庙。牛和油买来一桶油,跑来一头牛,踢翻桶里油,牛角都是油。鼠吃豆和油鼠咬豆囤囤漏豆,鼠啃油篓篓漏油篓油,豆囤漏豆鼠啃豆,油篓漏油鼠吸油。
护 树北风吹摇路边树,小陆上前把树护。一个木竿路旁竖,一根绳子拴捆住。树有木竿做支柱,木竿支树树稳固。
石榴树上结辣椒颠倒话,话颠倒,石榴树上结辣椒。东西大路南北走,碰见兔子去咬狗。拿住狗,打砖头,砖头咬住我的手。
黑豆放黑斗黑豆放在黑斗里,黑斗里边放黑豆,黑豆放黑斗,黑斗放黑豆,不知黑豆放黑斗,还是黑斗放黑豆。
收 葵 花葵花、蓖麻胖娃小筐手中拿,来到园中收葵花;小华小篮身上挎,一同进园收蓖麻。胖娃种的葵花花盘大,小华种的蓖麻密麻麻。小华去帮胖娃摘葵花,胖娃去帮小华收蓖麻。小华和胖娃,收了葵花、蓖麻献国家。
荷花和蛤蟆一朵粉红大荷花,趴着一只活蛤蟆,八朵粉红大荷花,趴着八只活蛤蟆。
花 和 瓜瓜藤开花像喇叭,娃娃爱花不去掐。瓜藤开花瓜花结花,没花就没瓜。吃瓜要爱花,娃娃爱花也爱瓜。
白果树我从伯伯门前过,看见伯爹伯妈门前种着白果树,白果树上站着百十百个白斑鸠,我就拣了百十百块白石头,打那百十百个白斑鸠。
高高山上一条藤高高山上一条藤,藤条头上挂铜铃。风吹藤动铜铃动,风停藤停铜铃停。
一 捆 葱东边来个小朋友叫小松,手里拿着一捆葱。西边来个小朋友叫小丛,手里拿着小闹钟。小松手里葱捆得松,掉在地上一些葱。小丛忙放闹钟去拾葱,帮助小松捆紧葱。小松夸小丛像雷锋,小丛说小松爱劳动。
兜 装 豆兜里装豆,豆装满兜,兜破漏豆。倒出豆,补破兜,补好兜,又装豆,装满兜,不漏豆。
洪家地下有个棚,冯家房上有个瓶。 冯洪两家猫打架,弄倒了洪家的棚,打碎了冯家的瓶。 冯家要赔洪家的棚,洪家要赔冯家的瓶。 不知冯家要赔洪家的棚,还是洪家要赔冯家的瓶。碰碰车
碰碰车,车碰碰,坐着朋朋和平平。 平平开车碰朋朋,朋朋开车碰平平,不知是平平碰朋朋,还是朋朋碰平平。 东边一座楼
东边一座楼,楼上两人打拳头。 拳头打,打拳头。来了一个人,拉了一头牛,将牛拴在楼脚下,看他两人打拳头。 拳头打,打拳头。又来了一个人,领了一只猴,将猴放在牛脚下,看他两人打拳头。 拳头打,打拳头。又来了一个人,挑了一担油,将油放在猴脚下,看他两人打拳头。 拳头打,打拳头。又来了一个人,挑了一担绸,将绸放在油脚下,看他两人打拳头。 拳头打,打拳头,两人打垮车边楼。 垮子楼,压倒牛,牛一蹲,蹲倒猴,猴一抓,抓倒油,油一泼,泼上绸。 绸问油,卖油买绸来赔绸;油问猴,卖猴买油来赔油; 猴问牛,卖牛买猴来赔猴;牛问楼,卖楼买牛来赔牛。 只问绸扯油来油扯猴,猴扯牛来牛扯楼。猴子吃掉小桃子
树上有只小桃子,树下有只小猴子。风吹桃树哗哗响,树上掉下小桃子。 桃子打着小猴子,猴子吃掉小桃子。
嘴说腿,腿说嘴,嘴说腿爱跑腿,腿说嘴爱卖嘴。 光动嘴不动腿,光动腿不动嘴,不如不长腿和嘴。铜勺铁勺舀油
铜勺舀热油,铁勺舀凉油。铜勺舀了热油舀凉油,铁勺舀了凉油舀热油。 一勺热油一勺凉油,热油凉油都是由。 狗
南边来了他大大伯子家的大搭拉尾巴耳朵狗, 北边来了他二大伯子家的二搭拉尾巴耳朵狗。 他大大伯家的大搭拉尾巴耳朵狗,咬了他二大伯家的二搭拉尾巴耳朵狗一口; 他二大伯家的二搭拉尾巴耳朵狗,也咬了他大大伯家的大搭拉尾巴耳朵狗一口。 不知是他大大伯家的大搭拉尾巴耳朵狗,先咬了他二大伯家的二搭拉尾巴耳朵狗; 还是他二大伯家的二搭拉尾巴耳朵狗,先咬了他大大伯家的大搭拉尾巴耳朵狗。水连天
天连水,水连天,水天一色望无边。兰兰的天似绿水,绿绿的水如蓝天。 到底是天连水,还是水连天?
颠 倒 歌太阳从西往东落,听我唱个颠倒歌。天上打雷没有响,地上石头滚上坡。江里骆驼会下蛋,山上鲤鱼搭成窝。腊月炎热直流汗,六月寒冷打哆嗦。
妹照镜子头梳手,门外口袋把驴驮。青 龙 洞 青龙洞中龙做梦,青龙做梦出龙洞,做了千年万载梦,龙洞困龙在深洞。自从来了新愚公,愚公捅开青龙洞,青龙洞中涌出龙,龙去农田做农工。
造 房 子捡颗小石子,在地上画个方格子,画好了格子造房子,画个大方格子造个大房子,
画个小方格子造个小房子,楼上的房子分给鸽子,楼下的房子分给小兔子。搭 房 子红红的好朋友蓝蓝会搭红房子,蓝蓝的好朋友红红会搭蓝房子。会搭红房子的蓝蓝,愿帮会搭蓝房子的红红搭红房子,会搭蓝房子的红红,愿帮会搭红房子的蓝蓝搭蓝房子。
青 龙 洞青龙洞中龙做梦,青龙做梦出龙洞,做了千年万载梦,龙洞困龙在深洞。自从来了新愚公,愚公捅开青龙洞,青龙洞中涌出龙,龙去农田做农工。 皮鞋、蒲鞋一只皮鞋,一只蒲鞋,皮鞋补蒲鞋,蒲鞋补皮鞋,皮鞋、蒲鞋,蒲鞋、皮鞋……
盆 和 瓶桌上放个盆,盆里有个瓶,砰砰啪啪,啪啪砰砰,不知是瓶碰盆,还是盆碰瓶。河里有只船河里有只船,船上挂白帆,风吹帆张船向前,无风帆落停下船。
枪 和 糠墙上一个窗,窗上一支枪,窗下一箩糠。枪落进了糠,糠埋住了枪。窗要糠让枪,糠要枪上墙,墙要枪上窗。互相不退让,糠赶不走枪,枪也上不了窗和墙。比 锤炉东有个锤快锤,炉西有个锤锤快,两人炉前来比赛,不知是锤快锤比锤锤快锤得快?还是锤锤快比锤快锤锤得快?
簸箕簸玉米皮。
会簸簸箕能簸出玉米皮,
小波不会簸簸箕,
簸不出玉米皮。
后簸谷秕子。
会簸秕谷子,
就簸谷秕子。
不会簸秕谷子,
就不簸谷秕子。
簸完秕谷子,
再簸谷秕子。
簸箕簸灰簸箕簸灰,
风小灰回,
风大灰飞。
簸箕簸灰,
风大灰飞,
风小灰回。
我走白家门前过,
白家门前一棵白果树,
树上结了白果果,
白果树上歇了只白八哥。
高高山上一条藤,
藤条头上挂铜铃,
风吹藤动铜铃动,
风停藤停铜铃停。
拔萝卜
出八十八二十八,
八个小孩儿把萝卜拔,
你也拔,我也拔,
看谁拔得多,
看谁拔得大。
你拔得不多个儿不小,
我拔得不少个儿不大。
一个萝卜一个坑儿,
算算多少用车拉,
一个加俩,俩加仨,
七十二个加十八,
拿个算盘打一打,
一百差俩九十八。
吃菱角,剥菱壳,
菱角丢在北壁角。
不吃菱角不剥壳,
菱角不丢北壁角。采蘑菇
黑兔和白兔,
上山采蘑菇,
小猴和小鹿,
一齐来帮助,
猴和兔,兔和鹿,
高高兴兴采蘑菇。
桐子落,童子乐;
丫头啃鸭头,
鸭头咸,丫头嫌。朱叔锄竹笋朱家一株竹,
竹笋初长出,
朱叔处处锄,
锄出笋来煮,
锄完不再出,
朱叔没笋煮,
竹株又干枯。
八个八哥飞上树,八棱八角树上住。
树下孩子直发悉,手拿弹弓射大树。
打得八哥离开树,八棱八角掉下树。
吃葡萄青葡萄,紫葡萄,
青葡萄没籽葡萄紫,
吃葡萄不吐葡萄皮,
不吃葡萄倒吐葡萄皮。
棉花像雪花,雪花像棉花。
棉花不是雪花,雪花不是棉花,
冷冰冰的是雪花,暖烘烘的是棉花。
瓜卖花婆婆卖瓜又卖花,
一过卖来一边夸,
夸瓜大,夸花美,
人们买瓜又买花,
乐得婆婆笑哈哈。
低头捡豆,
豆捡在手,
豆装豆篓。瓜爸爸种瓜瓜儿大,
妈妈摘瓜摘大瓜,
奶奶切瓜分大家,
大家吃瓜笑哈哈。有豆有扣小篓篓,有豆豆还有扣扣,
娃娃想拿豆豆却拿起扣扣,
又想拿起扣扣却又拿起豆豆,
豆豆扣扣,都让娃娃放回篓篓。
葱和松
东院想栽葱,
西院想栽松。
是东院栽葱,
还是西院栽松。
半边莲,莲半边,
半边莲长在山涧边。
半边天路过山涧边,发现这片半边莲。
半边天拿来一把镰,割了半筐半边莲。
半筐半边莲,送给边防连。
瓜棚挂瓜
瓜棚挂瓜,瓜挂瓜棚。
风刮瓜棚瓜棚动,
棚动瓜动瓜碰棚。
水上漂着一只瓢,
水上漂着一只瓢,
瓢上落着一只鸟,
鸟看瓢,瓢瞪鸟,
鸟不认识瓢,瓢也不认识鸟。
花生生花
新生农业社,生产落花生。
花生生花生,花生花生生。
生了数百升,升升盛花生。
声声话花生,人人夸花生。
一捆葱
东边来个小朋友叫小松,
手里拿着一捆葱。
西边来个小朋友叫小丛,
手里拿着小闹钟。
小松手里葱捆得松,
掉在地上一些葱。
小丛忙放闹钟去拾葱,
帮助小松捆紧葱。
小松夸小丛像雷锋,
小丛说小松爱劳动。
代码如下:
1 | import requests |
执行结果如下:
存入文本中的数据如下:
网站如下:http://www.nows.fun/
1 |
|
代码如下:
1 | import requests |
执行结果如下图:


加了去重,钉钉报警
db.py1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53# -*- encoding: utf-8 -*-
import hashlib
import time
from sqlalchemy import create_engine
from sqlalchemy import Column, VARCHAR, Integer, TIMESTAMP, CHAR
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('mysql+pymysql://root:123456@localhost/test?charset=utf8')
DBSession = sessionmaker(bind=engine)
session = DBSession()
Base = declarative_base()
class YoududuanziItem(Base):
"""段子信息"""
__tablename__ = 'duanzi_for_fun'
desc = '段子信息'
id = Column(Integer, primary_key=True, autoincrement=True)
duplicate_hash = Column(CHAR(40), index=True, unique=True, doc={'zh': "url hash"})
crawl_time = Column(TIMESTAMP, doc={'zh': '当前时间'})
centence = Column(VARCHAR(200), index=True, doc={'zh': '段子'})
@classmethod
def creat_table(cls):
"""创建数据表"""
cls.__table__.create(bind=engine, checkfirst=True)
def insert(self, centence):
url_sha = self.get_contern_url_hash(centence)
crawled_time = time.strftime('%Y-%m-%d %H:%M:%S')
try:
is_exist = session.query(YoududuanziItem).filter(YoududuanziItem.duplicate_hash == url_sha).all()
if not is_exist:
item = YoududuanziItem(duplicate_hash=url_sha, crawl_time=crawled_time, centence=centence)
session.add(item)
session.commit()
return True
else:
return False
except BaseException as e:
session.rollback()
session.close()
raise BaseException(f"数据插入失败: \n{url_sha} \n{centence} \n{e}")
def get_contern_url_hash(self, content_url):
hash = hashlib.sha1()
hash.update(str(content_url).encode('utf-8'))
url_sha = hash.hexdigest()
return url_sha
爬虫代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81# -*- encoding: utf-8 -*-
import time
import json
import requests
import logging
from lxml import etree
from fake_useragent import UserAgent
from my_test.db import session, YoududuanziItem
class YoududuanziSpider(object):
def __init__(self):
self.headers = {
'User-Agent': self.get_random_ua()
}
self.url = 'http://www.nows.fun/'
# 钉钉报警模板字段,注意: 必须使用raw string, 不能使用多行字符串, 钉钉只处理没有转义的字符, 包含转义字符会导致解析失败
self.failure_template = ('数据爬取信息:\n\n'
'> spider_name: {spider_name}\n\n'
'> table_name: {table_name}\n\n'
'> data_num: {data_num}\n\n'
'> last_data: {last_data}\n\n'
'> log_url: {log_url}\n\n')
self.dingding_headers = {
"Content-Type": "application/json;charset=utf-8",
}
def get_random_ua(self): # 随机UA
ua = UserAgent()
return ua.random
def get_content(self):
response = requests.get(url=self.url, headers=self.headers, timeout=10)
selector = etree.HTML(response.text)
centence = selector.xpath('//span[@id="sentence"]/text()')[0]
return centence
def send_dingtalk(self, spider_name, table_name, data_num, last_data, log_url):
try:
content = self.failure_template.format(
spider_name=spider_name,
table_name=table_name,
data_num=data_num,
last_data=last_data,
log_url=log_url
)
msg = {
"msgtype": "markdown",
"markdown": {
"title": '爬取的段子信息',
"text": '淘数爬虫:' + content
}
}
ding_url = 'https://oapi.dingtalk.com/robot/send?access_token=c1984aefbaff584bceb37b855b8380d7c6c78545fb749d068fc378df627fa786'
resp = requests.post(url=ding_url, headers=self.dingding_headers, data=json.dumps(msg), timeout=30)
json_data = json.loads(resp.text)
if resp.status_code == 200 and json_data['errcode'] == 0:
pass
else:
logging.error('钉钉报警发送失败{}'.format(json_data['errmsg']))
except Exception as e:
logging.error("send dingtalk failed, exception: ", e)
def run(self):
for i in range(100000):
job_info = self.get_content()
table.insert(job_info)
time.sleep(2)
if i % 1000 == 0:
logging.info(f'爬取进度:self.num={i}条数据!!!')
self.send_dingtalk(spider_name='youduduanzi', table_name='duanzi_for_fun', data_num=5, last_data=job_info, log_url=self.url)
if __name__ == '__main__':
duanzi = YoududuanziSpider()
table = YoududuanziItem()
table.creat_table()
duanzi.run()
共勉,(๑•̀ㅂ•́)و✧加油
升级模块:pip install –upgrade 库名
官方参考:https://packaging.python.org/tutorials/packaging-projects/
参考文章:https://mp.weixin.qq.com/s/IZJfkfgDWSGNhuUJn6wRoQ
我的:https://pypi.org/ cuiyonghua cui1-A!
https://github.com/wistbean/learn_python3_spider
/Users/cuiyonghua/Desktop/my_work_files/softwares/mongodb/mongodata/etc/mongo.conf
init1
2
3
4from __future__ import absolute_import
from .xiaocui import *
name = "xiaocui"
xiaocui.py1
2
3
4
5
6
7
8
9
10
11
12# -*- coding: utf-8 -*-
def output():
print('hello,这是')
def output1(data):
print('hello,这是:{}'.format(data))
def susu(susu):
print('susu:{}'.format(susu))
setup.py:
这个文件主要是要告诉 setuptools ,我们的包里面的一些信息,比如名称啊,版本号啊,作者,邮箱等等1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23# -*- coding: utf-8 -*-
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="xiaocui",
version="0.0.1",
author="xiaocui",
author_email="cui_yonghua6@163.com",
description="This is an cui package, fa li wu bian",
long_description=long_description,
long_description_content_type="text/markdown",
keywords="hello world example examples",
url="https://github.com/cuiyonghua6/cui_package",
packages=setuptools.find_packages(),
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
]
)
LICENCE1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21MIT License
Copyright (c) 2020 cuiyonghua6
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
python3 -m pip install –user –upgrade setuptools wheel
python3 setup.py sdist bdist_wheel
https://pypi.org/account/register/
https://test.pypi.org/account/register/
python3 -m pip install –user –upgrade twine
(apt install twine)
python3 -m twine upload dist/*
1 | --name 包名称 |
下列entry_points中: console_scripts 指明了命令行工具的名称;在“redis_run = RedisRun.redis_run:main”中,等号前面指明了工具包的名称,等号后面的内容指明了程序的入口地址。1
2
3entry_points={'console_scripts': [
'redis_run = RedisRun.redis_run:main',
]}
1 |
|
标签(空格分隔): python PEP8 代码 规范
在日常工作中,编写python代码时,大家有可能因为IDE的不同或者是没有遵循python的pep8规范而导致每个人的格式都不尽相同,导致其他人阅读起来比较吃力。但是有时候代码规范也并不是建议使用的,最主要的是风格一致性,每个组内的代码风格统一起来才是最重要的,根据自己的判断选择是否遵循PEP8。
ps: 许多项目有自己的编码规范,在出现规范冲突时,项目自身的规范优先。
接下来我们只挑一些在工作中频繁遇到规范进行示例,为减少大家阅读时间,以 推荐 和 糟糕 来说明。
每一级缩进使用4个空格。
推荐:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 与左括号对齐
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 用更多的缩进来与其他行区分
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
# 挂行缩进应该再换一行
foo = long_function_name(
var_one, var_two,
var_three, var_four)
# 与内容对齐
my_list = [
1, 2, 3,
4, 5, 6,
]
# 与第一行第一个字符对齐
my_list = [
1, 2, 3,
4, 5, 6,
]
糟糕:1
2
3
4
5
6
7
8
9
10
11# 没有使用垂直对齐时,禁止把参数放在第一行
foo = long_function_name(var_one, var_two,
var_three, var_four)
# 当缩进没有与其他行区分时,要增加缩进
def long_function_name(
var_one, var_two, var_three,
var_four):
print(var_one)
my_list = [1, 2, 3, 4, 5, 6]
所有行限制的最大字符数为79。
推荐:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30# 类与类之间前后用两个空行隔开
Class A:...
Class B:...
# 类中函数与函数之间前后用一个空行隔开
Class C:
def c_a(self):...
def c_b(self):...
# 函数与函数之间前后用两个空行隔开
def a_run():...
def b_run():...
# 在函数中使用空行来区分逻辑段(谨慎使用)。
def c_run():
# 逻辑A
...
...
# 逻辑B
...
...
推荐:
同时在每一组导入之间加入空行。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20# 官方标准库导入
import os
import sys
# 第三方库
import arrow
import requests
# 导入本地库
import app
# 以from导入标准库
from datetime import datetime
# 以from导入第三方库
from ldap3 import Server
# 以from导入本地库
from app import DB
from . import create_app # 处理绝对路径过长时可以以相对路径进行替换
糟糕:1
2# 在import中导入多个库
import sys, os
二元运算符中的空格:
推荐:1
2
3
4
5
6
7
8
9i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)
糟糕:1
2
3
4
5
6
7
8
9i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
关键字参数或者默认参数值:
推荐:1
2def complex(real, imag=0.0):
return magic(r=real, i=imag)
糟糕:1
2def complex(real, imag = 0.0):
return magic(r = real, i = imag)
当更新代码时,一定要记得同步更新注释,否则使阅读的人会陷入更糟糕的近况。
推荐:1
2
3
4"""Return a foobang
Optional plotz says to frobnicate the bizbaz first.
"""
大家在写函数或者方法时,往往会漏掉当前方法或函数的作用,其实这个还是很重要的,这样往往不需要阅读你的逻辑就可以知道你准备干什么
推荐:1
2
3
4
5
6
7
8
9
10
11
12"""
def oa_notice_template(project, api, account, cpu, mem):
"""
压测申请模板
:param project: 项目名称
:param api: 接口名称
:param account: 申请人
:param cpu: cpu核数
:param mem: 内存大小
:return:
"""
"""
在编写代码时,阅读者追寻编写人时往往很困难,或者此文件具体是做什么的。这个时候我们稍微添加一些个人信息注释就很好做到追源了。
推荐:1
2
3
4
5
6
7
8
9
10"""
@Description: 接口测试上传
@Author : duanfei
@Time : 2020/5/9 11:51 下午
@Site :
@File : http_test.py
"""
import os
...
命名规范很重要,很多时候你的命名能够大致的解释了变量、函数、类是用来做什么的。所以在命名的时候一定要选择贴近的词义,让阅读者可以理解
模块应该用简短全小写的名字,如果为了提升可读性,下划线也是可以用的。Python包名也应该使用简短全小写的名字,但不建议用下划线。
类名一般使用单词首字母大写的约定
推荐:1
class CheckFunc:...
糟糕:1
2
3
4
5
6# 首字符需大写,同时类名中无需带下划线
class check_func:...
# 全部大写,同时类名中无需带下划线
class CHECK_FUNC:...
函数名应该小写,如果想提高可读性可以用下划线分隔。
推荐:1
def check_func():...
一定要靠近变量的意思,不要使用一些意义不明的参数,如:i,j,k,特别注意永远不要使用字母‘l’(小写的L),‘O’(大写的O),或者‘I’(大写的I)作为单字符变量名。
糟糕:1
2
3
4
5l = []
i = 0
xxx = [for i in xx]
常量一般默认全部为大写, 同时一定要表明好注释
推荐:1
2
3
4TOTAL = 10 # 订单总页数
# 最大溢出量
MAX_OVERFLOW = 1000
因为异常一般都是类,所有类的命名方法在这里也适用。
推荐:1
2
3
4
5
6
7
8class ErrorInvalidArgument(ApiError):
"""
参数缺失或错误
"""
code = 401001
code_name = 'Invalid_Argument'
message = 'invalid argument.'
zh_message = '参数缺失或错误'
关于异常处理:
推荐:1
2
3
4
5
6try:
value = collection[key]
except KeyError:
return key_not_found(key)
else:
return handle_value(value)
糟糕:1
2
3
4try:
return handle_value(collection[key])
except KeyError:
return key_not_found(key)
关于返回结果处理:
不管在任何时候返回结果都需要保持一致。
推荐:1
2
3
4
5
6
7
8
9
10def foo(x):
if x >= 0:
return math.sqrt(x)
else:
return None
def bar(x):
if x < 0:
return None
return math.sqrt(x)
糟糕:1
2
3
4
5
6
7
8def foo(x):
if x >= 0:
return math.sqrt(x)
def bar(x):
if x < 0:
return
return math.sqrt(x)
关于True、Fakse的判断:
不要用 == 去和True或者False比较
推荐:1
2if greeting:
...
糟糕:1
2
3
4
5if greeting == True:
...
if greeting is True:
...
==================================================
规范—新手村(孙晓飞)
相信现代编译器的bug是很难遇到的
也就是说,当你的程序出现bug的时候,最后去怀疑编译器和系统(windows除外)
mr要有意义
最大也是最重要的原因是——在采用squash合入master的时候,mr的title会作为这次merge的commit信息,没有意义的mr==没有意义的commit。那么,为什么commit要有意义呢……去面壁吧,不说这个问题了……
不明白的代码,不要乱用!
不明白的代码,不要乱用! 不明白的代码,不要乱用! OK我说了三遍了
不要有过多输出
尤其是你开发的是一个包会被别人调用的情况下,因为别人连关都关不掉
没有经过profile过的程序做瓶颈优化都是耍流氓
profile的方法参见:(假装有东西,等写完放过来)
万恶之源
有的人说重复代码是万恶之源,有的人说过早的重构(或优化)是万恶之源 这两种说法虽然是矛盾的,但是都说出了部分的真相——我个人的偏好是:1
2
3
4
5
6
7
8
9
10
11
12
13if 存在重复代码 {
if 不需要使用interface(go和java里的interface,python里的抽象类,c++里的模板)就可以解决{
do 干他!
} else {
if 处于项目早期 {
项目优先
} else {
do 干他!
}
}
} else {
print(“大侠再见”)
}
尊重IDE
最重要的是尊重编译器的warning
代码不要给其他人造成心智负担
包括但不仅限于:
merge后的分支需要删除,无论本地还是远端,都要删除
不要用注释代码的方式保留老代码;注释要有意义
使用正确的变量名
(Python)使用variable annotation
减少中文的使用
包括但不仅限于,中文文档、CSDN、百度搜索等等
PyCharm 的doc string采用google style
原因包括但不仅限于:
不然的话会在群里看到自己要请大家喝奶茶的消息 :)
termius (windows用户强制,会折腾microsoft terminal的请忽略我)
source tree (mac和windows)ShannonWIKI
PyCharm的save action插件,在save的时候选择reformat以及optimize
GoLand的File Watchers里启用go fmt
每个项目都要要设置line seperator为Unix模式,也就是使用\n。windows用户要尤其注意。
除非你厉害,否则不要用vim或者emacs,人类发明很多工具是有理由的
使用IDE做VCS
绝对路径,之前提过了
除了config文件,项目中绝对不准使用绝对路径!!!!!!!
在任何地方,都不允许使用linux的相对路径,也就是”../“这种形式
解释一下正确做法:
项目中,数据分为两种:一种是不需要外部传入的数据,这类数据的路径一定是相对于项目根目录的路径的,具体做法是用Python的函数获取项目的路径,然后其他素有路径都是相对于这个录几个的;另一种是外部挂载的数据,一般是是大数据或者敏感数据,这类是将路径写在config中,然后将config忽略来做到的
不允许绝对路径,不允许赤裸裸的相对路径!!!!!!!!!!!!!!!
python代码,如果参数过多需要换行,建议采用这种形式:1
2
3
4
5function(
para_1,
para_2,
…
)
而不是:1
2
3function(para_1,
para_2,
…)
更不能:1
2
3function(para_1,
para_2
)
不要乱用字典
各位,很严肃的提醒,字典(python里的dict,go、C++、java里的map)这种数据结构,适用于存储key-value结构,而且是key不定的情况,如果key是确定的,最好声明一个类来存储,否则代码维护性极差,我们之前已经吃过亏了,不要再吃亏了。因此,以后如果key是确定的情况,严禁使用字典作为传参手段,尤其是python,不要把编程语言的字典当成json来用。
git的开发规范
从master上,新建分支,然后做修改,commit,push,远端merge后,checkout到master,然后拉取远端,然后进入下一轮开发。严禁在master上做修改,然后checkout到新分支,然后提交!!!!
source activate conda_venv
conda activate conda_venv
source deactivate
1、首先在所在系统中安装Anaconda。可以打开命令行输入conda -V检验是否安装以及当前conda的版本。
2、conda常用的命令。
1)conda list 查看安装了哪些包。
2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境
3)conda update conda 检查更新当前conda
3、创建python虚拟环境。
使用 conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
4、使用激活(或切换不同python版本)的虚拟环境。
打开命令行输入python --version可以检查当前python的版本。
使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。
Linux: source activate your_env_name(虚拟环境名称)
Windows: activate your_env_name(虚拟环境名称)
这是再使用python –version可以检查当前python版本是否为想要的。
5、对虚拟环境中安装额外的包。
使用命令conda install -n your_env_name [package]即可安装package到your_env_name中
6、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)。
使用如下命令即可。
Linux: source deactivate
Windows: deactivate
7、删除虚拟环境。
使用命令conda remove -n your_env_name(虚拟环境名称) –all, 即可删除。
8、删除环境中的某个包。
使用命令conda remove –name your_env_name package_name 即可。